package com.wen.cim.common.util;

import okhttp3.*;
import org.springframework.util.StringUtils;

import java.io.IOException;

/**
 * @author 文洪武
 * @title: HttpClient
 * @projectName cim-master
 * @description:
 * 使用okHttpClient进行http请求,高效的使用http，让资源加载更快，节省带宽
 * 支持http2，允许所有同一主机地址的请求共享同一个socket连接
 * 连接池嫌少请求延时，透明的GZIP压缩减少响应数据的大小
 * 缓存响应内容，避免一些完全重复的请求，
 * 当网络出现问题的时候OkHttp会自动回复一般的连接问题，如果有多个ip当地一个请求ip失败
 * 会交替尝试你配置的ip。
 * @date 2021/11/2120:16
 */
public class HttpClient {

    private static MediaType mediaType = MediaType.parse("application/json");

    public static Response call(OkHttpClient okHttpClient, String params, String url) throws IOException {
        RequestBody requestBody = RequestBody.create(mediaType, params);

        Request request = new Request.Builder()
                .url(url)
                .post(requestBody)
                .build();

        Response response = okHttpClient.newCall(request).execute();
        if (!response.isSuccessful()) {
            throw new IOException("Unexpected code" + response);
        }

        return response;

    }

}
